package io.cloud.tec.jdk;

public class OuterClass {
    private String message = "Hello from OuterClass";

    public OuterClass() {
        // 使用匿名内部类
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                // 在匿名内部类中的方法中使用this关键字
                System.out.println("Inner this: " + this);  // 匿名内部类实例
                System.out.println("Outer this: " + OuterClass.this);  // 外部类实例

                // 调用匿名内部类自身的方法
                innerMethod();

                // 调用外部类的方法
                outerMethod();
            }

            public void innerMethod() {
                System.out.println("InnerMethod called");
            }
        };

        runnable.run();
    }

    public void outerMethod() {
        System.out.println("OuterMethod called");
    }
}